#字典
#字典是一系列键值对，每个键都与一个值相关联，可以使用键来访问与之关联的值，可以将任意对象用作字典里的值
#字典用放在{}里的一系列键值对表示，键和值之间冒号分割，键值对直接逗号分隔
peter = {'high' : 188,'age' : 18}
#要获取与键关联的值，可以指定字典名，并把键放在后面的方括号里
print(peter['high'])
#添加键值对
peter['weight'] = 100
print(peter)
#定义一个空字典
user = {}
user['age'] = 18
user['high'] = 188
user['weight'] = 100
print(user)
#修改字典值  要修改字典值可以依次指定字典名，用方括号括起来的键和该键关联的新值
user['high'] = 189
print(user)
#删除键值对，对于字典中不再需要的信息，可以使用del语句将键值对彻底删除，在使用时，必须指定字典名和要删除的键
del user['high']
print(user)
#由类似的对象组成的字典，可以使用字典存储众多对象的同一种信息
#使用get()来访问值 get()方法的第一个参数用于指定键，是必不可少的，第二个参数为当指定的键不存在时要返回的值，是可以选择的
high = user.get('high','没有该信息')#如果没有指定第二个参数且指定的键不存在，将返回none
print(high)
#遍历所有的键值对
#编写遍历字典的for循环可以先声明两个变量，分别用于存储键值对中的键和值，可以使用任意名称
#for语句的第二部分包含字典名和items()方法，这个方法返回一个键值对列表
for key , value in user.items():
    print(f'{key}: {value}')
#遍历字典所有的键使用 keys()方法
for key in user.keys():
    print(key)
#keys方法会返回一个列表，包含字典中的所有键，可以使用if语句判断键是否在这个列表中
if 'age' in user.keys():
    print('nih')
#按特定顺序遍历字典中所有键  在for循环中对返回的键进行排序，可以使用sorted()函数进行排序
for us in sorted(user.keys()):
    print(us)
#遍历字典中所有值 可以使用values()方法
for val in user.values():
    print(val)
#这种方法无法剔除重复选项，为了剔除重复选项，可以使用集合set，将包含重复元素的列表传入set()，可以找出独一无二的元素
names_1 = {'peter':1 , 'david' : 1 , "max" : 2}
for names in names_1.values():
    print(names)
for name in set(names_1.values()):
    print(name)